package com.xxxx.server.pojo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_employee")
@ApiModel(value="Employee对象", description="")
public class EmployeeAdd {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "员工编号")
    @ExcelProperty("员工编号")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "员工姓名")
    @ExcelProperty("员工姓名")
    private String name;

    @ApiModelProperty(value = "性别")
    @ExcelProperty("性别")
    private String gender;

    @ApiModelProperty(value = "出生日期")
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date birthday;

    @ApiModelProperty(value = "身份证号")
    @ExcelProperty("身份证号")
    private String idCard;

    @ApiModelProperty(value = "婚姻状况")
    @ExcelProperty("婚姻状况")
    private String wedlock;

    @ApiModelProperty(value = "民族")
    @ExcelProperty("民族")
    private Integer nationId;

    @ApiModelProperty(value = "籍贯")
    @ExcelProperty("籍贯")
    private String nativePlace;

    @ApiModelProperty(value = "政治面貌")
    @ExcelProperty("政治面貌")
    private Integer politicId;

    @ApiModelProperty(value = "邮箱")
    @ExcelProperty("邮箱")
    private String email;

    @ApiModelProperty(value = "电话号码")
    @ExcelProperty("电话号码")
    private String phone;

    @ApiModelProperty(value = "联系地址")
    @ExcelProperty("联系地址")
    private String address;

    @ApiModelProperty(value = "所属部门")
    @ExcelProperty("所属部门")
    private Integer departmentId;

    @ApiModelProperty(value = "职称ID")
    @ExcelProperty("职称ID")
    private Integer jobLevelId;

    @ApiModelProperty(value = "职位ID")
    @ExcelProperty("职位ID")
    private Integer posId;

    @ApiModelProperty(value = "聘用形式")
    @ExcelProperty("聘用形式")
    private String engageForm;

    @ApiModelProperty(value = "最高学历")
    @ExcelProperty("最高学历")
    private String tiptopDegree;

    @ApiModelProperty(value = "所属专业")
    @ExcelProperty("所属专业")
    private String specialty;

    @ApiModelProperty(value = "毕业院校")
    @ExcelProperty("毕业院校")
    private String school;

    @ApiModelProperty(value = "入职日期")
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date beginDate;

    @ApiModelProperty(value = "在职状态")
    @ExcelProperty("在职状态")
    private String workState;

    @ApiModelProperty(value = "工号")
    @ExcelProperty("工号")
    private String workID;

    @ApiModelProperty(value = "合同期限")
    @ExcelProperty("合同期限")
    private Double contractTerm;

    @ApiModelProperty(value = "转正日期")
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date conversionTime;

    @ApiModelProperty(value = "离职日期")
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date notWorkDate;

    @ApiModelProperty(value = "合同起始日期")
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date beginContract;

    @ApiModelProperty(value = "合同终止日期")
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date endContract;

    @ApiModelProperty(value = "工龄")
    @ExcelProperty("工龄")
    private Integer workAge;

    @ApiModelProperty(value = "工资账套ID")
    @ExcelProperty("工资账套ID")
    private Integer salaryId;



    private Nation nation;
    private PoliticsStatus politicsStatus;
    private Department department;
    private Joblevel joblevel;
    private Position position;
    private Salary salary;

    public Nation getNation() {
        return nation;
    }

    public void setNation(Nation nation) {
        this.nation = nation;
    }

    public PoliticsStatus getPoliticsStatus() {
        return politicsStatus;
    }

    public void setPoliticsStatus(PoliticsStatus politicsStatus) {
        this.politicsStatus = politicsStatus;
    }

    public Department getDepartment() {
        return department;
    }

    public void setDepartment(Department department) {
        this.department = department;
    }

    public Joblevel getJoblevel() {
        return joblevel;
    }

    public void setJoblevel(Joblevel joblevel) {
        this.joblevel = joblevel;
    }

    public Position getPosition() {
        return position;
    }

    public void setPosition(Position position) {
        this.position = position;
    }

    public Salary getSalary() {
        return salary;
    }

    public void setSalary(Salary salary) {
        this.salary = salary;
    }
}
